package com.woniu.controller;

import com.woniu.common.CommonResult;
import com.woniu.entity.PersonUser;
import com.woniu.entity.UsedProductConsignee;
import com.woniu.service.PersonUserService;
import com.woniu.service.UsedProductConsigneeService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * 二手市场收货信息表(UsedProductConsignee)表控制层
 *
 * @author makejava
 * @since 2020-03-30 22:08:16
 */
@RestController
@RequestMapping("/usedProductConsignee")
public class UsedProductConsigneeController {
    /**
     * 服务对象
     */
    @Resource
    private UsedProductConsigneeService usedProductConsigneeService;

    @Resource
    PersonUserService personUserService;

    /**
     * 功能描述: 修改地址信息
     * @Param: [usedProductConsignee]
     * @Return: com.woniu.common.CommonResult
     * @Author: yanghan
     * @Date: 2020/4/7 3:03
     */
    @PutMapping("/updateAddr")
    public CommonResult updateAddr(UsedProductConsignee usedProductConsignee){
        try {
            usedProductConsigneeService.update(usedProductConsignee);
            return CommonResult.success("修改成功");
        } catch (Exception e) {
            e.printStackTrace();
            return CommonResult.failed("修改失败");
        }
    }

    /**
     * 功能描述: 根据地址Id删除当前地址
     * @Param: [addrId]
     * @Return: com.woniu.common.CommonResult
     * @Author: yanghan
     * @Date: 2020/4/7 2:36
     */
    @DeleteMapping("/delAddrById/{addrId}")
    public CommonResult delAddrById(@PathVariable("addrId")Integer addrId){
        try {
            usedProductConsigneeService.deleteById(addrId);
            return CommonResult.success("删除地址成功");
        } catch (Exception e) {
            e.printStackTrace();
            return CommonResult.failed("删除地址失败");
        }
    }

    /**
     * 功能描述: 根据收货Id查询收货信息
     * @Param: [consigneeId]
     * @Return: com.woniu.common.CommonResult
     * @Author: yanghan
     * @Date: 2020/3/30 22:57
     */
    @GetMapping("/findByConsigneeId/{consigneeId}")
    public CommonResult findByConsigneeId(@PathVariable("consigneeId")Integer consigneeId){
        if (consigneeId != null){
            try {
                UsedProductConsignee usedProductConsignee = usedProductConsigneeService.queryById(consigneeId);
                return CommonResult.success("查询成功",usedProductConsignee);
            } catch (Exception e) {
                e.printStackTrace();
                return CommonResult.failed("查询失败");
            }
        }
        return CommonResult.success(1);
    }

    /**
     * 功能描述: 根据当前用户查询收货信息
     * @Param: []
     * @Return: com.woniu.common.CommonResult
     * @Author: yanghan
     * @Date: 2020/3/30 22:26
     */
    @GetMapping("/findAllByUserId")
    public CommonResult findAllByUserId(){
        //获取当前登录的用户的用户名
//        String name = cookieUtil.getName();
        String name = "admin";
        //查询用户Id
        PersonUser personUser = personUserService.findIdByName(name);
        try {
            List<UsedProductConsignee> usedProductConsignees = usedProductConsigneeService.findAllByUserId(personUser.getId());
            return CommonResult.success("查询成功",usedProductConsignees);
        } catch (Exception e) {
            e.printStackTrace();
            return CommonResult.failed("查询失败");
        }

    }

    /**
     * 功能描述: 保存收货人信息
     * @Param: [usedProductConsignee]
     * @Return: com.woniu.common.CommonResult
     * @Author: yanghan
     * @Date: 2020/3/30 21:53
     */
    @PostMapping("/saveConsignee")
    public CommonResult saveConsignee(UsedProductConsignee usedProductConsignee){
        //获取当前登录的用户的用户名
//        String name = cookieUtil.getName();
        String name = "admin";
        //查询用户Id
        PersonUser personUser = personUserService.findIdByName(name);
        usedProductConsignee.setUserId(personUser.getId());
        try {
            UsedProductConsignee productConsignee = usedProductConsigneeService.insert(usedProductConsignee);
            return CommonResult.success("保存成功",productConsignee.getId());
        } catch (Exception e) {
            e.printStackTrace();
            return CommonResult.success("保存失败");
        }

    }

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("selectOne")
    public UsedProductConsignee selectOne(Integer id) {
        return this.usedProductConsigneeService.queryById(id);
    }

}